// motor.h
#ifndef MOTOR_H
#define MOTOR_H
#include "stm32f10x.h" 
#include "Arduino.h"  // 包含 pinMode, digitalWrite, analogWrite 等

// 方向定义
#define MOTOR_STOP  0
#define MOTOR_FWD   1
#define MOTOR_REV   2

// 电机结构体（完全平台无关）
typedef struct {
    GPIO_PinName pin1;        // 方向控制引脚1
    GPIO_PinName pin2;        // 方向控制引脚2
    GPIO_PinName pwm_pin;     // PWM 控制引脚（支持 analogWrite）

    int8_t direction;         // 当前方向
    uint16_t throttle;           // 当前油门 (0~1000)
} Motor;

// 初始化电机
void motor_init(Motor *m, GPIO_PinName pin1, GPIO_PinName pin2, GPIO_PinName pwm_pin);

// 设置电机：方向 + 油门 (0~1000)
void motor_set(Motor *m, int8_t direction, uint16_t thr);

// 停止电机
void motor_stop(Motor *m);

#endif
